
//单片机头文件
#include "stm32f10x.h"

//网络协议层
#include "onenet.h"

//网络设备
#include "esp8266.h"

//硬件驱动
#include "delay.h"
#include "usart.h"
#include "adc.h"
#include "timer.h"


//C库
#include <string.h>
#include <stdint.h>
#include <stdio.h>

#define ESP8266_ONENET_INFO		"AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"

void Hardware_Init(void);
void Display_Init(void);
void Refresh_Data(void);

double B;

/*
************************************************************
*	函数名称：	main
*
*	函数功能：	
*
*	入口参数：	无
*
*	返回参数：	0
*
*	说明：		
************************************************************
*/
int main(void)
{
	unsigned char *dataPtr = NULL;
	unsigned short timeCount = 0;	//发送间隔变量
	
	Hardware_Init();				//初始化外围硬件
	ESP8266_Init();					//初始化ESP8266

	while(OneNet_DevLink())			//接入OneNET
	{
		ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");
		delay_ms(500);
	}
	
	
	while(1)
	{
			double adcx=(double)Get_Adc_Average(ADC_Channel_1, 100) * (5.0 / 4096);
	double A=adcx/(50*200);
	UsartPrintf(USART_DEBUG, "%.15f\r\n",A);
			delay_ms(300);
		
		if(++timeCount >= 10)									//发送间隔5s
		{
			
			//char message[100];
			//memset(message, 0, sizeof(message));
		//	sprintf(message,
			//"{\"method\":\"thing.service.property.post\",\"params\":{\
		//	\"A\":%.15f},\"version\":\"1.0.0\"}", A);

		// sprintf(message, "{\"A\": %.15f}", A);
			OneNet_SendData();
		//	UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");
		//	OneNet_Publish(Tips,message);									//发送数据
			
			timeCount = 0;
			ESP8266_Clear();
		}
	
		
		delay_ms(10);
	
	}
		

}
/*
************************************************************
*	函数名称：	Hardware_Init
*
*	函数功能：	硬件初始化
*
*	入口参数：	无
*
*	返回参数：	无
*
*	说明：		初始化单片机功能以及外接设备
************************************************************
*/
void Hardware_Init(void)
{
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//中断控制器分组设置

	delay_init();									//systick初始化
	
	Usart1_Init(115200);							//串口1，打印信息用
	
	Usart2_Init(115200);							//串口2，驱动ESP8266用
	Adc_Init();


	
	UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
}

